Data management systems find a broad field of applications in modern life. These range from on-line data processing (OLDP), to data mining, to email and the like. All of such applications share the property that the amount of data that needs to be stored, and which may need to be accessed, increases with time. Moreover, the technologies used for transmitting, processing, storing and displaying such data have undergone, and continue to undergo substantial evolution during the practical lifetime of a system or operations concept.
Another evolving requirement is the necessity for such system to be both highly reliable and highly available. Systems now have redundant components, automatic backups, automatic failover of components and the like, so as to achieve these goals. These are particularly important in enterprise environments, in cloud computing and elsewhere where contractual quality of service (QoS) standards need to be met in order to avoid economic loss, frustration of web users, and lack of timely results.
Over a period of time, systems may exhaust their initial memory or computing capacity, exceed the capability of data communications links and experience other bottlenecks. This may result in the need to replace, upgrade, or augment the equipment used to provide the service. Changes in the configuration of a system may result in the need to interrupt the operation of one or all of the applications being service by a system in order to accomplish the necessary changes. This is an undesirable consequence, and should be minimized or obviated. How often have we seen a message on a browser to the effect that the system is unavailable due to “scheduled maintenance.” More often, the system is unavailable and no explanation is provided.